package com.brand.prisd.application;

import android.app.Application;
import android.content.Context;
import android.content.Intent;
import android.support.annotation.Nullable;
import android.support.multidex.MultiDex;

import com.brand.prisd.activity.SelectAccountActivity;
import com.orhanobut.logger.AndroidLogAdapter;
import com.orhanobut.logger.LogcatLogStrategy;
import com.orhanobut.logger.Logger;
import com.orhanobut.logger.PrettyFormatStrategy;
import com.tuya.smart.home.sdk.TuyaHomeSdk;
import com.tuya.smart.sdk.api.INeedLoginListener;

/**
 * Created by HJ on 2018/12/6.
 */
public class PrisdApp extends Application {
    final String LOG_TAG = "HJ";//日志的 TAG 值
    final boolean LOGGABLE = true;//是否开启日志打印
    @Override
    public void onCreate() {
        super.onCreate();
        MultiDex.install(this);
        TuyaHomeSdk.init(this);
        TuyaHomeSdk.setDebugMode(true);
        /*
         *Session由于可能存在一些异常或者在一段时间不操作（45天）会失效掉，
         * 这时候需要退出应用，重新登陆获取Session。
         */
        //需要在application里面注册
        //一旦出现此类回调，请跳转到登陆页面，让用户重新登陆。
        TuyaHomeSdk.setOnNeedLoginListener(new INeedLoginListener() {
            @Override
            public void onNeedLogin(Context context) {
                Logger.i("Session由于可能存在一些异常或者在一段时间不操作（45天）会失效掉，\n" +
                        "这时候需要退出应用，重新登陆获取Session。");
                startActivity(new Intent(context, SelectAccountActivity.class));
            }
        });

        Logger.addLogAdapter(new AndroidLogAdapter(PrettyFormatStrategy.newBuilder()
                //是否显示线程信息
                .showThreadInfo(true)
                //显示方法的数量
                .methodCount(1)
                .methodOffset(0)
                .logStrategy(new LogcatLogStrategy())
                .tag(LOG_TAG)
                .build()) {

            @Override
            public boolean isLoggable(int priority, @Nullable String tag) {
                //是否开启日志打印
                return LOGGABLE;
            }
        });
    }
}
